package com.eshop.modules.user.service;

import com.eshop.common.service.BaseService;
import com.eshop.modules.order.vo.StoreOrderQueryVo;
import com.eshop.modules.user.domain.ShopUser;
import com.eshop.modules.user.service.dto.PromUserDto;
import com.eshop.modules.user.service.dto.UserDto;
import com.eshop.modules.user.service.dto.UserMoneyDto;
import com.eshop.modules.user.service.dto.UserQueryCriteria;
import com.eshop.modules.user.vo.UserQueryVo;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.springframework.data.domain.Pageable;

public interface UserService extends BaseService<ShopUser> {
    void backOrderBrokerage(StoreOrderQueryVo storeOrderQueryVo);

    void decIntegral(Long l, double d);

    void decPrice(Long l, BigDecimal bigDecimal);

    void download(List<UserDto> list, HttpServletResponse httpServletResponse) throws IOException;

    UserQueryVo getNewYxUserById(ShopUser shopUser);

    Map<String, Integer> getSpreadCount(Long l);

    Double[] getUserMoney(Long l);

    List<PromUserDto> getUserSpreadGrade(Long l, int i, int i2, Integer num, String str, String str2);

    UserQueryVo getYxUserById(Long l);

    UserQueryVo handleUser(ShopUser shopUser);

    void incBrokeragePrice(BigDecimal bigDecimal, Long l);

    void incIntegral(Long l, double d);

    void incMoney(Long l, BigDecimal bigDecimal);

    void incPayCount(Long l);

    void onStatus(Long l, Integer num);

    List<ShopUser> queryAll(UserQueryCriteria userQueryCriteria);

    Map<String, Object> queryAll(UserQueryCriteria userQueryCriteria, Pageable pageable);

    List<PromUserDto> querySpread(Long l, Integer num);

    double setLevelPrice(double d, long j);

    void setSpread(String str, long j);

    void updateMoney(UserMoneyDto userMoneyDto);
}
